import java.awt.*;

// public class Frame2
// {
//     public static void main(String[] args) {
//         while(true) {

//         }
//     //     Frame w = new Frame();
//     //     w.setSize(800, 600);
//     //    // w.setBackground(Color.BLACK);
//     //     MyPanel mp = new MyPanel();
//     //     w.add(mp);
//     //     System.out.println("SHOW");
//         //w.show();
//     }

// }

// class MyPanel extends Panel
// {
//     public void paint(Graphics g) {
//         int x = 30;
//         int y = 30;
//         while(true) {
//             g.fillOval(x, y, 20, 20);
//             y++;
//             System.out.println("y:" + y);
//         }
//     }
// }

import java.lang.management.ClassLoadingMXBean;
import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import java.lang.management.MemoryUsage;
import java.lang.management.OperatingSystemMXBean;
import java.lang.management.RuntimeMXBean;
import java.lang.management.ThreadMXBean;
import java.util.List;

public class Frame2
{
    public static void main(String[] args) {
        //获取Java线程管理MXBean
        ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
        //不需要获取同步的monitor信息和synchronized,仅获取线程和线程堆栈信息
        ThreadInfo [] threadInfos = threadMXBean.dumpAllThreads(true,true);
        //遍历线程信息，进打印线程ID和线程名称
        for (ThreadInfo threadInfo:threadInfos ) {
            System.out.println("[" + threadInfo.getThreadId() + "] " + threadInfo. getThreadName());
        }
    }
}